package vip.xiaonuo.sys.fymodule.plugins.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalTime;

/**
 * <p>
 * 多商户 - 店铺
 * </p>
 *
 * @author wangy
 * @since 2025-06-11
 */
@Data
@TableName("sxo_plugins_shop")
@Schema(name = "SxoPluginsShop对象", description = "多商户 - 店铺")
public class SxoPluginsShop implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "自增id")
    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    @Schema(description = "系统类型（默认 default, 其他按照SYSTEM_TYPE常量类型）")
    @TableField("system_type")
    private String systemType;

    @Schema(description = "用户id")
    @TableField("user_id")
    private String userId;

    @Schema(description = "状态（0待提交，1待审核，2已审核，3已拒绝，4已关闭）")
    @TableField("status")
    private Integer status;

    @Schema(description = "正方形店铺loog")
    @TableField("logo")
    private String logo;

    @Schema(description = "长方形店铺loog")
    @TableField("logo_long")
    private String logoLong;

    @Schema(description = "店铺banner")
    @TableField("banner")
    private String banner;

    @Schema(description = "名称")
    @TableField("name")
    private String name;

    /*@Schema(description = "简介")
    @TableField("describe")
    private String describe;*/

    @Schema(description = "店铺分类id")
    @TableField("category_id")
    private Integer categoryId;

    @Schema(description = "数据模式（0自动模式，1标准模式，2拖拽设计）")
    @TableField("data_model")
    private Byte dataModel;

    @Schema(description = "店铺二级域名")
    @TableField("domain")
    private String domain;

    @Schema(description = "域名修改次数")
    @TableField("domain_edit_number")
    private Integer domainEditNumber;

    @Schema(description = "页面配置信息")
    @TableField("layout_config")
    private String layoutConfig;

    @Schema(description = "到期时间（0则永久）")
    @TableField("expire_time")
    private Integer expireTime;

    @Schema(description = "客服微信二维码")
    @TableField("service_weixin_qrcode")
    private String serviceWeixinQrcode;

    @Schema(description = "客服line二维码")
    @TableField("service_line_qrcode")
    private String serviceLineQrcode;

    @Schema(description = "客服QQ")
    @TableField("service_qq")
    private String serviceQq;

    @Schema(description = "客服电话")
    @TableField("service_tel")
    private String serviceTel;

    @Schema(description = "接收通知手机号码")
    @TableField("notice_mobile")
    private String noticeMobile;

    @Schema(description = "接收通知电子邮箱")
    @TableField("notice_email")
    private String noticeEmail;

    @Schema(description = " 工作日起始")
    @TableField("open_week")
    private Boolean openWeek;

    @Schema(description = "工作日结束")
    @TableField("close_week")
    private Boolean closeWeek;

    @Schema(description = "在线时间起始")
    @TableField("open_time")
    private LocalTime openTime;

    @Schema(description = "在线时间结束")
    @TableField("close_time")
    private LocalTime closeTime;

    @Schema(description = " 是否支持自提（0否，1是）")
    @TableField("is_extraction")
    private Byte isExtraction;

    @Schema(description = "联系人")
    @TableField("contacts_name")
    private String contactsName;

    @Schema(description = "联系电话")
    @TableField("contacts_tel")
    private String contactsTel;

    @Schema(description = "所在省")
    @TableField("province")
    private Integer province;

    @Schema(description = "所在市")
    @TableField("city")
    private Integer city;

    @Schema(description = "所在县/区")
    @TableField("county")
    private Integer county;

    @Schema(description = "详细地址")
    @TableField("address")
    private String address;

    @Schema(description = "经度")
    @TableField("lng")
    private BigDecimal lng;

    @Schema(description = "纬度")
    @TableField("lat")
    private BigDecimal lat;

    @Schema(description = "认证类型（-1未认证，0个人，1企业）")
    @TableField("auth_type")
    private Integer authType;

    @Schema(description = "企业名称")
    @TableField("company_name")
    private String companyName;

    @Schema(description = "企业统一社会信用代码")
    @TableField("company_number")
    private String companyNumber;

    @Schema(description = "企业执照图片")
    @TableField("company_license")
    private String companyLicense;

    @Schema(description = "更多材料附件、json存储")
    @TableField("more_prove")
    private String moreProve;

    @Schema(description = "身份证姓名")
    @TableField("idcard_name")
    private String idcardName;

    @Schema(description = "身份证号码")
    @TableField("idcard_number")
    private String idcardNumber;

    @Schema(description = "身份证人像面图片")
    @TableField("idcard_front")
    private String idcardFront;

    @Schema(description = "身份证国微面图片")
    @TableField("idcard_back")
    private String idcardBack;

    @Schema(description = "保证金状态（0未缴，1已缴，2已退）")
    @TableField("bond_status")
    private Byte bondStatus;

    @Schema(description = "保证金缴纳金额")
    @TableField("bond_price")
    private BigDecimal bondPrice;

    @Schema(description = "保证金过期时间")
    @TableField("bond_expire_time")
    private Integer bondExpireTime;

    @Schema(description = "保证金支付时间")
    @TableField("bond_pay_time")
    private Integer bondPayTime;

    @Schema(description = "结算类型（-1默认不结算，0统一比例，1商品配置）")
    @TableField("settle_type")
    private Boolean settleType;

    @Schema(description = "结算比例0~100的值")
    @TableField("settle_rate")
    private BigDecimal settleRate;

    @Schema(description = "用户是否可以配置结算信息（针对商品中）")
    @TableField("is_user_settle")
    private Byte isUserSettle;

    @Schema(description = "失败原因")
    @TableField("fail_reason")
    private String failReason;

    @Schema(description = "分享图片")
    @TableField("share_images")
    private String shareImages;

    @Schema(description = "SEO标题")
    @TableField("seo_title")
    private String seoTitle;

    @Schema(description = "SEO关键字")
    @TableField("seo_keywords")
    private String seoKeywords;

    @Schema(description = "SEO描述")
    @TableField("seo_desc")
    private String seoDesc;

    @Schema(description = "添加时间")
    @TableField("add_time")
    private Integer addTime;

    @Schema(description = "更新时间")
    @TableField("upd_time")
    private Integer updTime;
}
